/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package negocios;

import acceso_datos.EstadisticasDB;
import java.awt.Color;
import java.sql.SQLException;
import java.util.ArrayList;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;

/**
 *
 * @author Pablo
 */
public class GestorEstadisticas {

    public void crearGrafico() throws SQLException {
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        
        
        EstadisticasDB edb=new EstadisticasDB();
        ArrayList<String> listaZonas=edb.listaZonas();
        
        ArrayList<Integer> valoresIncendios=new ArrayList<Integer>();
        ArrayList<Integer> valoresRobos=new ArrayList<Integer>();
        
        
        for(String zona:listaZonas){
            valoresIncendios.add(edb.calcularNumeroIncendios(zona));
            valoresRobos.add(edb.calcularNumeroRobos(zona));
        }
        
        String incendio = "Incendio";
        String robo = "Robo";
        
        for(int i=0;i<listaZonas.size();i++){
            dataset.addValue(valoresIncendios.get(i), incendio, listaZonas.get(i));
            dataset.addValue(valoresRobos.get(i), robo, listaZonas.get(i));
        }
        
        
        
        JFreeChart graficoBarras = ChartFactory.createBarChart(
                "Datos Estadistcos: Emergencias x Zona", //Título de la gráfica 
                "Zonas", //leyenda Eje horizontal 
                "Número de emergencias", //leyenda Eje vertical 
                dataset, //datos 
                PlotOrientation.VERTICAL, //orientación 
                true, //incluir leyendas 
                true, //mostrar tooltips 
                true);
        graficoBarras.setBackgroundPaint(Color.LIGHT_GRAY);
        CategoryPlot plot = (CategoryPlot) graficoBarras.getPlot();
        plot.setBackgroundPaint(Color.CYAN); //fondo del grafico 
        plot.setDomainGridlinesVisible(true);//lineas de rangos, visibles 
        plot.setRangeGridlinePaint(Color.BLACK);//color de las lineas de rangos
        mostrarGrafico(graficoBarras, "Gráfico de barras");
    }

    static ChartFrame mostrarGrafico(JFreeChart grafico, String titulo) {
        ChartFrame frame = new ChartFrame(titulo, grafico);
        frame.pack();
        frame.setVisible(true);
        return frame;
    }
}
